Exibi os números primos de um numero recebido pelo usuário, sem estrutura de repetição
Publicado por Edmar Wantuil (última atualização em 22/11/2011)
[ Hits: 2.046 ]
Homepage: wantuil.com
Escrevi esse código para testar os números primos <= de um numero recebido pelo usuário.
Economizado o máximo de processos possíveis e sem utilizar estrutura de repetição apenas recursividade.
/* Feito por Edmar Wantuil Silva Júnior Em 14 de novembro de 2011 */ #include <stdio.h> #include <stdlib.h> #include <stdbool.h> //Função testa se é primo ele testa até encrontar um divisor o achando ele para o teste, pois já saberemos que ele é primo int testa_primo(int numero, int divisor) { //Ira testar somente até a metade do numero pois sabemos que após a metade do nuemro so existe o proprio numero como divisor if((numero / 2) < divisor) return 0; //Se achar qualquer divisor o teste irá parar pois o numero não é mais primo if(numero % divisor == 0) return 1; else return testa_primo(numero,divisor + 1); } //Essa função chama a função testa primo e retorna true caso primo bool primo(numero) { //vamos passar o numero 2 como o primeiro divisor pois sabemos que todos os numeros são divisiveis assim se retornar 0 ele sera primo if(testa_primo(numero,2) == 0) return true; else return false; } //Essa função chama ela mesma até numero = cont void primos(int numero, int cont) { if(primo(cont) == true) printf("%d\n", cont); if(numero > cont) primos(numero, cont + 1); return; } //Função principal int main() { int numero= 0; printf("Numero: "); scanf("%d",&numero); primos(numero, 1); primo(numero); return 0; }
Agenda eletronica com banco de dados em arquivo texto
Gerador de numeros da mega-sena tabajara
Função que converte números decimais em binários
Nenhum comentário foi encontrado.
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Dock do debian está muito pequena (1)
Instalei Windows 11 e não alterou o Grub do Debian (0)
Linux Mint (21.2) não reconhece teclado mecanico RASEC da PCYES (2)